﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using BaseDatos;
using BaseDatos.Comun;
using Aplicacion.Base.WinForm;

namespace Modulo.Seguridad.Base
{
    public class EBPerfilxAcceso:EntidadBase
    {
        #region Campos
        private string codperf = "";
        private string dscperf = "";
        private string codmo = "";
        private string dscopc = "";
        private string acceso = "";
        private string chk = "";
        private string modulo = "";
        private string menu = "";
        #endregion

        #region Propiedades
        public string Menu
        {
            get { return menu; }
            set { menu = value; }
        }
        public string Chk
        {
            get { return chk; }
            set { chk = value; }
        }
        public string Modulo
        {
            get { return modulo; }
            set { modulo = value; }
        }
        public string CodigoPerfil
        {
            get { return codperf; }
            set { codperf = value; }
        }
        public string DescripcionPerfil
        {
            get { return dscperf; }
            set { dscperf = value; }
        }
        public string CodigoOpcion
        {
            get { return codmo; }
            set { codmo = value; }
        }
        public string Opcion
        {
            get { return dscopc; }
            set { value = dscopc; }
        }
        public string Acceso
        {
            get { return acceso; }
            set { acceso = value; }
        }
        #endregion

        #region Construcctores
        public EBPerfilxAcceso()
          :base()
        { 
        }
        public EBPerfilxAcceso(DataRow Registro)
            :this()
        {
            Cargar(Registro);
        }
        #endregion
        #region Métodos
        public  void Cargar( string Codigo)
        { 
            DbParametro[] Parametros = new DbParametro[1];
            Parametros[0] = new DbParametro("pcodperf",Codigo);
            ////Consulta la base de datos y crea un dataset
            DataSet Ds = ConexionBaseDatos.Conexion.CrearDataSet("GETCK_perfilxacceso", Parametros);
            ////Si hay más de 0 registros llama el venteo cargar(DataRow Registro)
            if (Ds.Tables[0].Rows.Count > 0)
            {
                Cargar(Ds.Tables[0].Rows[0]);
            }
        }
         protected override void Cargar(System.Data.DataRow Registro)
        {
            base.Cargar(Registro);
            if (DataRow != null)
            {
                try
                {
                    codperf = RetornarCampo("codperf", codperf).ToString();
                    dscperf = RetornarCampo("dscperf", dscperf).ToString();
                    codmo = RetornarCampo("codmo", codmo).ToString();
                    modulo = RetornarCampo("modulo", modulo).ToString();
                    menu = RetornarCampo("Menu", menu).ToString();
                    dscopc = RetornarCampo("dscopc", dscopc).ToString();
                    chk = RetornarCampo("chk", chk).ToString();
                    acceso = RetornarCampo("acceso", acceso).ToString();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
        public override void Grabar()
        {
            DbParametro[] Parametros = new DbParametro[4];
            Parametros[0] = new DbParametro("pcodperf", codperf);
            Parametros[1] = new DbParametro("pcodmo", codmo);
            Parametros[2] = new DbParametro("pusuario", Environment.UserName.ToUpper());
            Parametros[3] = new DbParametro("pestacion", Environment.MachineName.ToUpper());
            ConexionBaseDatos.Conexion.EjecutarComando("SETCK_PERFILXACCESO", Parametros);
        }
        public override void Eliminar()
        {
            DbParametro[] Parametros = new DbParametro[4];
            Parametros[0] = new DbParametro("pcodperf", codperf);
            Parametros[1] = new DbParametro("pcodmo", codmo);
            Parametros[2] = new DbParametro("pusuario", Environment.UserName.ToUpper());
            Parametros[3] = new DbParametro("pestacion", Environment.MachineName.ToUpper());
            ConexionBaseDatos.Conexion.EjecutarComando("DELCK_PERFILXACCESO", Parametros);
        }
        #endregion

    }
}
